Внешняя применяемость

Портал Semantic MDM предоставляет возможность подключения внешних сервисов для получения данных о применяемости позиции во внешних системах.

Получение данных о внешней применяемости осуществляется посредством вызова GET-метода REST-сервиса. Ожидаемый MIME-тип возвращаемых данных - application/json. Данные о позиции будут передаваться в параметрах URL:

http(s)://<svc_url>?uuid=<идентификатор_позиции_в_M2>&transitionalKey=<переходной_ключ_1>&transitionalKey=<переходной_ключ_2>

В ответе от сервера необходимо предусмотреть HTTP-заголовок, разрешающий обрабатывать запрос с другого источника (CORS), иначе браузер развернет запрос согласно политике одного источника. Пример заголовка, если работаем со стендом m2-mdm.sdi-solution.ru:

Access-Control-Allow-Origin: http://m2-mdm.sdi-solution.ru

Access-Control-Allow-Credentials: true

Ответ ожидается в виде массива ExternalSystemApplicability:

export class ExternalSystemApplicability {  
  public id: string; _// идентификатор объекта во внешней системе  
_  public displayName: **string**; _// наименование объекта во внешней системе  
_  public detailsUrl?: **string**; _// адрес, по которому можно обратиться за расширенной информацией об объекте  
_  public properties?: ApplicabilityProperty\[\]; _// атрибуты объекта_

}

export class ApplicabilityProperty {  
   public displayName: string;  
   public value?: string;  
   public children?: ApplicabilityProperty\[\];  
}

Пример ожидаемого ответа в формате JSON:

[  
  {  
    "id": "id000000001",  
    "displayName": "External display name",  
    "detailsUrl": "[http://www.sdi-solution.ru/](http://www.sdi-solution.ru/)",  
    "properties": [  
      {  
        "displayName": "Остатки по складам",  
        "value": "780",  
        "children": [  
          {  
            "displayName": "Остатки на складе 1",  
            "children": [  
              {  
                "displayName": "Остатки на участке 1",  
                "value": "80"  
              },  
              {  
                "displayName": "Остатки на участке 2",  
                "value": "150"  
              }  
            ]  
          },  
          {  
            "displayName": "Остатки на складе 2",  
            "value": "550"  
          }  
        ]  
      },  
      {  
        "displayName": "Атрибут без вложенных со значением",  
        "value": "Значение"  
      },  
      {  
        "displayName": "Атрибут без вложенных и без значения"  
      }  
    ]  
  }  
]

Пример реализации сервиса внешней применяемости доступен по ссылке external-applicability-example-svc.zip